package com.zhangxin.aiInterview.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhangxin.aiInterview.model.dto.resume.ResumeSearchRequest;
import com.zhangxin.aiInterview.model.dto.resume.UploadFileRequest;
import com.zhangxin.aiInterview.model.entity.Resume;
import com.zhangxin.aiInterview.model.po.ExtractedResumePO;
import com.zhangxin.aiInterview.model.vo.ResumeVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
* @author ZX
* @description 针对表【resume(简历表)】的数据库操作Service
* @createDate 2025-04-25 14:58:29
*/
public interface ResumeService extends IService<Resume> {
    /**
     * 简历上传
     * @param multipartFile 文件
     * @param uploadFileRequest
     * @param request
     * @param isFull
     * @param fullInterviewId
     * @return
     */
    Long uploadFile(MultipartFile multipartFile, UploadFileRequest uploadFileRequest, HttpServletRequest request, Boolean isFull, Long fullInterviewId);

    /**
     * 公共接口：同步上传简历并分析
     * @param multipartFile 简历文件
     * @param positionName 岗位名称
     * @param companyName 公司名称
     * @return 包含简历ID和分析结果的Map
     */
    String uploadAndAnalyzeResume(MultipartFile multipartFile, String positionName, String companyName);

    /**
     * 获取用户简历信息
     * @param request
     * @return
     */
    List<ResumeVO> searchResume(ResumeSearchRequest resumeSearchRequest, HttpServletRequest request);

    ResumeVO getResumeVO(Resume resume);

    List<ResumeVO> getResumeVO(List<Resume> resumeList);

    List<ExtractedResumePO> getExtractedResumeByUserId(HttpServletRequest request);

    boolean deleteResume(Long resumeId, HttpServletRequest request);
}
